1. Field of the Invention
The field of the invention is data processing, or, more specifically, methods, systems, and products for subscribing for application messages in a multicast messaging environment.
2. Description of Related Art
Messaging environments are generally available to provide data communication between message sending devices and message receiving devices using messages. A message is a quantity of data that includes one or more data fields and is passed from a message producer installed on a message sending device to a message consumer installed on a message receiving device. A message may represent, for example, numeric or textual information, images, encrypted information, and computer program instructions.
A messaging environment may support point-to-point messaging, publish and subscribe messaging, or both. In a point-to-point messaging environment, a message producer may address a message to a single message consumer. In a publish and subscribe messaging environment, a message producer may publish a message to a particular channel or topic and any message consumer that subscribes to that channel or topic receives the message. Because message producers and message consumers communicate indirectly with each other via a channel or topic in a publish and subscribe environment, message transmission is decoupled from message reception. As a consequence, neither producers nor consumers need to maintain state about each other, and dependencies between the interacting participants are reduced or eliminated. A publish and subscribe environment may, therefore, allow message publishers and message subscribers to operate asynchronously.
For further explanation of a messaging environment, FIG. 1 sets forth a block diagram illustrating a typical messaging environment for data communications that includes a message sending device (100), a message receiving device (104), and a message administration server (102). The message sending device (100) is a computer device having installed upon it a message producer (110), a set of computer program instructions configured for creating or transforming application messages. The message producer (110) typically transmits the messages to the message administration server (102) for delivery to a message receiving device. In the example of FIG. 1, the message producer (110) transmits messages to the message administration server (102) on a message stream (106). The message sending device (100) may produce the transmitted messages by generating the messages from data of the message sending device itself or data received from some other source. The message receiving device (104) is a computer device having installed upon it a message consumer (112), a set of computer program instructions configured for receiving and consuming application messages. The message consumer (112) typically receives the messages from the message administration server (102). In the example of FIG. 1, the message consumer (112) receives the messages from the message administration server (102) on a message stream (108). In the example of FIG. 1, the message stream (106) and the message stream (108) are data communication channels implemented using, for example, the User Datagram Protocol (‘UDP’) and the Internet Protocol (‘IP’).
In either a point-to-point messaging environment or a publish and subscribe messaging environment, the messages transmitted from message sending devices to message receiving devices typically pass through the message administration server (102). The message administration server (102) is computer device having installed upon it a message administration module (114), computer program instructions configured for administering the messages transmitted from the message producer (110) to the message consumer (112). Examples of message administration modules may include the IBM WebSphere® MQ, the Open Message Queue from Sun Microsystems, and the OpenJMS from The OpenJMS Group. In a point-to-point messaging environment, the message administration module (114) provides message queuing for the message consumer (112) as the message administration module (114) receives messages addressed to the consumer (112) from various message providers. In a publish and subscribe messaging environment, the message administration module (114) administers the various channels or topics to which message producers publish and message consumers subscribe. In either message environment, the message administration module (114) may also provide security services to ensure that the only messages arriving at the messaging consumer (112) from the message producer (110) are those messages that the message consumer (112) is authorized to receive and that the message producer (110) is authorized to send.
Current messaging environments such as, for example, the one described above with reference to FIG. 1, have certain drawbacks. Messages transmitted to a message administration server from a message sending device for delivery to a message receiving device are delayed in the message administration server until the message administration server can process the messages. The message processing that occurs in the message administration server typically increases the overall messaging latency of the messaging environment and decreases the overall speed for transmitting data in the data communications environment. Messaging latency is the time period beginning when the message producer transmits a message and ending when the message consumer receives the message.
In many data communication environments, even slight increases in messaging latency are costly. Consider, for example, a financial market data environment. A financial market data environment is a data processing environment used to communicate information about financial markets and participants in financial markets. In a financial market data environment, a message is commonly referred to as a ‘tick’ and represents financial market data such as, for example, financial quotes or financial news. Financial quotes include bid and ask prices for any given financial security. A ‘bid’ refers to the highest price a buyer is willing to pay for a security. An ‘ask’ refers to the lowest price a seller is willing to accept for a security. In a financial market data environment, a message producer may provide quotes for the purchase or sale of financial securities based on real-time financial market conditions, and a message consumer may buy and sell financial securities based on financial quotes. When a message consumer buys or sells a financial security based on the quoted price provided by the message producer, the ability of a message consumer to obtain the bid or ask in the quote for the financial security is largely influenced by messaging latency in the financial market data environment. The higher the messaging latency, the less likely a buy or sell order generated by the message consumer will execute at or near the price stated in the financial quote. In fact, a highly volatile security may fluctuate in price dramatically over a time period of a few seconds.
Current solutions to reduce messaging latency are to remove the message administration server from the messaging environment. In such current solutions, the message sending devices send messages directly to message receiving devices. The drawback to such current solutions is that removing the message administration server removes the administration functionality provided by the message administration server from the messaging environment. Current solutions, therefore, effectively offer no solution in messaging environments where the administrative functions of a message administration server are required. Consider, for example, a multicast messaging environment in which the message receiving device has no information about the state or existence of the message sending devices, and the message sending devices transmit application messages without regard to whether any devices are listening for the messages. In such an environment, further consider that the message receiving device requires that the transmission of messages from the message sending device does not occur until after the message receiving device has established a message stream to receive the messages. Removing the message administration server from such a financial market data environment removes the centralized entity capable of providing information about the various message sending devices in the environment to the message receiving device and removes the queuing capability provided by the message administration server.